package com.shujia.five;

public class OperatorDemo8 {

    public static void main(String[] args) {

        // 无符号右位移, 左边都补0
        System.out.println("-------------------");
        System.out.println(53 >>> 1);

        /*
        -53 32位
        原码: 1011 0101 8位
        32位原码: 1000 0000 0000 0000 0000 0000 0011 0101
        32位反码: 1111 1111 1111 1111 1111 1111 1100 1010 取反
        32为补码: 1111 1111 1111 1111 1111 1111 1100 1011 加一
        无符号右位移左边补0:
        01111 1111 1111 1111 1111 1111 1100 101 正数, 补码是它本身
         */
        System.out.println(-53 >>> 1);


        System.out.println("-------------------");

        // 右位移
        // 0011 0101 补码
        // 0001 1010 补码
        System.out.println(53 >> 1);// 26
        // 1100 1011 补码
        // 1110 0101 补码 -> -27
        System.out.println(-53 >> 1);// -27


        System.out.println("-------------------");
    }
}
